package com.xufx.algorithm.sort;

import java.util.Collections;
import java.util.PriorityQueue;
import java.util.Queue;

/**
 * 堆排序
 * 1.如果不是自己来实现堆的话，堆排序是很简单的
 */
public class HeapSort {
    public static void main(String[] args) {
        int[] nums = new int[]{0,1,8,-4,3,3,3,3,-90,7,3,3,6};
        heapSort(nums);
        for (int num: nums) {
            System.out.println(num);
        }
    }

    // 这个方法有点取巧，用的是java里面存在的容器工具。
    private static void heapSort(int[] nums){
        Queue heap = new PriorityQueue(nums.length);
        for (int num: nums){
            heap.add(num);
        }

        for (int i = 0; i < nums.length; i++){
            nums[i] = (int) heap.poll();
        }
    }
}
